#ifndef __MARS_GRAPHICS_VERTEX_SHADER_H__
#define __MARS_GRAPHICS_VERTEX_SHADER_H__

#include "MarsShader.h"

using namespace Core;

namespace Graphics
{

class VertexShader : public Shader
{
public:
									VertexShader( const char* pcszFileName, const char* pcszEntry, const char* pcszShaderModel );
									~VertexShader();

	virtual void					Release();
	virtual bool					PostCompile();

	ID3D11VertexShader*				GetNativeVertexShader();

protected:
	virtual void					SetCBufferToContext();

private:
	ID3D11VertexShader*				m_pVertexShader;
	bool							m_bCompiled;
};

inline ID3D11VertexShader* VertexShader::GetNativeVertexShader()
{
	return m_pVertexShader;
}

} // end of namespace Graphics

#endif // end of #ifndef __MARS_GRAPHICS_VERTEX_SHADER_H__